﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DTO;
using DAO;
using BUS;

namespace QuanLyKhachSan
{
    public partial class ChoThuePhong : Form
    {
        private long maPhongThem;

        public ChoThuePhong()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Chắc chắn muốn thoát ???", "Warning !!!", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
                this.Close();
        }

        private void ChoThuePhong_Load(object sender, EventArgs e)
        {
            List<LoaiPhongDTO> dsLoaiPhong = LoaiPhongBUS.layDSLoaiPhong();
            for (int i = 0; i < dsLoaiPhong.Count; i++)
            {
                comboLoaiPhong.Items.Add(dsLoaiPhong[i].TenLoaiPhong);
            }

            List<LoaiKhachDTO> dsLoaiKhach = LoaiKhachBUS.layDSLoaiKhach();
            for (int i = 0; i < dsLoaiKhach.Count; i++)
            {
                comboLoaiKhach.Items.Add(dsLoaiKhach[i].TenLoaiKhach);
            }

            dtpNgayThue.Value = DateTime.Now;
        }

        private void comboLoaiPhong_SelectedIndexChanged(object sender, EventArgs e)
        {
            comboPhong.Items.Clear();

            string tenLoaiPhong = comboLoaiPhong.Text;

            List<PhongDTO> dsPhong = PhongBUS.layDSPhongTheoLoaiPhong(tenLoaiPhong);
            for (int i = 0; i < dsPhong.Count; i++)
            {
                comboPhong.Items.Add(dsPhong[i].TenPhong);
                txtDonGia.Text = dsPhong[i].DonGia.DonGia.ToString();
            }
        }

        private void btThemKhachHang_Click(object sender, EventArgs e)
        {
            if (txtHoTen.Text == "" || txtDiaChi.Text == "" || txtCMND.Text == "" || comboLoaiKhach.Text == "")
            {
                MessageBox.Show(this, "Bạn phải nhập đủ thông tin để thêm khách hàng !!!", "Thông báo !!!");
            }
            else
            {
                try
                {
                    int j = 0;
                    string tenLoaiKhachThem = "";
                    long maLoaiKhachThem = 0;
                    List<LoaiKhachDTO> dsLoaiKhach = LoaiKhachBUS.layDSLoaiKhach();
                    for (int i = 0; i < dsLoaiKhach.Count; i++)
                    {
                        if (comboLoaiKhach.Text == dsLoaiKhach[i].TenLoaiKhach)
                        {
                            maLoaiKhachThem = dsLoaiKhach[i].MaLoaiKhach;
                            tenLoaiKhachThem = dsLoaiKhach[i].TenLoaiKhach;
                        }
                    }

                    KhachHangBUS.ThemKhachHang(txtHoTen.Text, maLoaiKhachThem, txtCMND.Text, txtDiaChi.Text);
                    MessageBox.Show(this, "Thêm khách thành công !!!", "Thông Báo !!!");

                    List<KhachHangDTO> dsKhach = KhachHangBUS.layDSKhachHang();
                    List<PhieuThueDTO> dsPhieuThue = PhieuThueBUS.LayDSPhieuThue();
                    ChiTietPhieuThueBUS.ThemChiTietPhieuThue(dsKhach[dsKhach.Count - 1].MaKhachHang, dsPhieuThue[dsPhieuThue.Count - 1].MaPhieuThue);

                    ListViewItem LVI = new ListViewItem(new String[] { (j + 1).ToString(), txtHoTen.Text, tenLoaiKhachThem, txtCMND.Text, txtDiaChi.Text });
                    lvDSKhachHang.Items.Add(LVI);

                    txtHoTen.Text = "";
                    txtCMND.Text = "";
                    txtDiaChi.Text = "";
                    comboLoaiKhach.Text = "";
                }
                catch (System.Exception ex)
                {
                    MessageBox.Show(this, "Thêm khách không thành công !!!", "Thông Báo !!!");
                    throw ex;
                }
            }
        }

        private void btKiemTra_Click(object sender, EventArgs e)
        {
            if (comboLoaiPhong.Text == "" || comboPhong.Text == "" || txtDonGia.Text == "" || dtpNgayThue.Text == "")
            {
                MessageBox.Show(this, "Bạn phải nhập đủ thông tin !!!", "Thông báo !!!");
            }
            else
            {
                if (dtpNgayThue.Value < DateTime.Today)
                {
                    MessageBox.Show(this, "Ngày thuê không được nhỏ hơn ngày hiện tại !!!", "Thông báo !!!");
                } 
                else
                {
                    try
                    {
                        List<PhongDTO> dsPhong = PhongBUS.layDSPhongTheoLoaiPhong(comboLoaiPhong.Text);
                        for (int i = 0; i < dsPhong.Count; i++)
                        {
                            if (maPhongThem == dsPhong[i].MaPhong)
                            {
                                if (dsPhong[i].TinhTrang != 1)
                                {
                                    PhieuThueBUS.ThemPhieuThue(maPhongThem, Convert.ToDateTime(dtpNgayThue.Text));
                                    MessageBox.Show(this, "Phòng được phép cho thuê !!!", "Thông Báo !!!");
                                    btKiemTra.Enabled = false;
                                    btThemKhachHang.Enabled = true;
                                    break;
                                }
                                else
                                {
                                    MessageBox.Show(this, "Phòng không được phép cho thuê !!!", "Thông Báo !!!");
                                }
                            }
                        }
                    }
                    catch (System.Exception ex)
                    {
                        MessageBox.Show(this, "Phòng không được phép cho thuê !!!", "Thông Báo !!!");
                    }
                }
            }
        }

        private void comboPhong_SelectedIndexChanged(object sender, EventArgs e)
        {
            List<PhongDTO> dsPhong = PhongBUS.layDSPhongTheoLoaiPhong(comboLoaiPhong.Text);
            for (int i = 0; i < dsPhong.Count; i++)
            {
                if (comboPhong.Text == dsPhong[i].TenPhong)
                {
                    maPhongThem = dsPhong[i].MaPhong;
                }
            }
        }

        private void btChoThue_Click(object sender, EventArgs e)
        {
            try
            {
                List<PhongDTO> dsPhong = PhongBUS.layDSPhong();
                for (int i = 0; i < dsPhong.Count; i++)
                {
                    if (dsPhong[i].MaPhong == maPhongThem)
                    {
                        PhongBUS.updatePhong(dsPhong[i].MaPhong, dsPhong[i].TenPhong, dsPhong[i].LoaiPhong.MaLoaiPhong, 1, dsPhong[i].GhiChu);
                    }
                }
                MessageBox.Show("Cho thuê phòng thành công !!!", "Thông báo !!!");
            }
            catch (System.Exception ex)
            {
                MessageBox.Show("Cho thuê phòng không thành công !!!", "Thông báo !!!");
            }
        }
    }
}
